Many modern applications store critical data, such as data relating to financial transactions, telephone records, and customer billing, that can be mined for various purposes. These purposes can range from the detection of fraud and money laundering to the tracing of crimes and the targeting of advertisements and promotions.
Often, this data is stored in a relational database, i.e., a digital database that is organized based on the relational model of the data, such as a structured query language (SQL) database. The relational model typically organizes the data in a plurality of tables, where each table is associated with a different entity type described in the database. The rows of the table represent the instances of the entity type, while the columns of the table represent values assigned to the instances. In addition, each row is associated with a unique key that allows the row to be linked to rows in other tables.